Some interesting possibility associated with modern programming is so-called Reflection
It allows you to save metadata of the methods, properties, and other elements
simultaneously together with machine code.
Such data are available for other programs and helps using of libraries.
An interesting feature of "Reflection" is the ability to alter the function and logic at program runtime.

Reflection

In the above code snippet a program for the calculation of the square of the number is created.
This program is then automatically saved in a file on disk.